home *** CD-ROM | disk | FTP | other *** search
- // the implementation of class EDIT_PASTE
- // Copyright (C) 1996, 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
-
- #include "../stdafx.h"
-
- #include "../common/bool.h"
-
- #include "edpaste.h"
-
- void EDIT_PASTE::EDIT_PASTE_MOUSE_CURSOR::draw_cursor_core(KBAN_DRAW& draw, const XY& ac)
- {
- KBAN_DATA cursor_data;
- m_block_data.shift(ac, cursor_data);
- draw.draw_kban_data_cursor(cursor_data, 0);
- }
-
- STAGE* EDIT_PASTE::init_new(KBAN_INFO& info, KBAN_DRAW& draw)
- {
- return new STAGE_PLACE(info);
- }
-
- const char* EDIT_PASTE::get_name(void)
- {
- return "Edit:Paste";
- }
-
- EDIT_PASTE::STAGE_PLACE::STAGE_PLACE(KBAN_INFO& info)
- : mcur(info)
- {
- }
-
- STAGE* EDIT_PASTE::STAGE_PLACE::redraw(KBAN_INFO& info, KBAN_DRAW& draw)
- {
- mcur.redraw_cursor(draw);
- return this;
- }
-
- STAGE* EDIT_PASTE::STAGE_PLACE::key_in(KBAN_INFO& info, KBAN_DRAW& draw, UINT key, UINT nFlags)
- {
- switch(key) {
- case 'r' :
- case 'R' : {
- mcur.erase_cursor(draw);
- info.clipped_data().rotate_90();
- break;
- }
- }
- return this;
- }
-
- STAGE* EDIT_PASTE::STAGE_PLACE::mouse_move(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
- {
- XY ac;
- info.grid().xy_pc2ac(pc, ac);
- mcur.draw_cursor(draw, ac);
- return this;
- }
-
- STAGE* EDIT_PASTE::STAGE_PLACE::mouse_left_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
- {
- mcur.erase_cursor(draw);
-
- XY ac;
- info.grid().xy_pc2ac(pc, ac);
- uint active_layer = info.active_layer().get();
-
- const KBAN_DATA& clipped_data = info.clipped_data();
- KBAN_DATA added_data;
- clipped_data.shift(ac, added_data);
-
- KBAN_DATA& kban_data = info.kban_data();
- kban_data += added_data;
-
- draw.draw_kban_data(added_data, active_layer);
-
- info.SetModifiedFlag();
- info.new_state().set(true);
- info.new_state_str() = "Paste";
-
- return this;
- }
-
- STAGE* EDIT_PASTE::STAGE_PLACE::mouse_right_up(KBAN_INFO& info, KBAN_DRAW& draw, const XY& pc, UINT nFlags)
- {
- return NULL;
- }
-
- void EDIT_PASTE::STAGE_PLACE::end(KBAN_INFO& info, KBAN_DRAW& draw)
- {
- mcur.erase_cursor(draw);
- }
-